using System;
using System.Collections.Generic;
using System.Data;
using System.Configuration;
using System.Web.UI;
using Anthem;
using Common;
using DataAccess;

public partial class RubrosListado : PageBase
{
    #region Propiedades

    public string IdentificadorPlnId
    {
        get { return (ViewState["IdentificadorPlnId"] == null ? string.Empty : ViewState["IdentificadorPlnId"].ToString()); }
        set { ViewState["IdentificadorPlnId"] = value; }
    }

    private DataTable SigSigPlanAccionDataTable
    {

        get
        {

            DataTable objTable = null;
            if (Cache[SigPlanAccionData.SIG_PLAN_ACCION_TABLE+ Session.SessionID] != null)
                objTable = (DataTable)Cache[SigPlanAccionData.SIG_PLAN_ACCION_TABLE + Session.SessionID];
            return objTable;
        }

        set
        {
            if (value != null)
            {
                Cache.Insert(SigPlanAccionData.SIG_PLAN_ACCION_TABLE + Session.SessionID, value, null, DateTime.Now.AddMinutes(20), TimeSpan.Zero);
            }
        }
    }

    #endregion

    #region Page_Load

    protected void Page_Load(object sender, EventArgs e)
    {
        WccAcciones1.AddEnabledDuringCallBack = false;
        WccAcciones1.AddTextDuringCallBack = "Guardando... Por favor esperar!!!";
        WccAcciones1.UpdateEnabledDuringCallBack = false;
        WccAcciones1.UpdateTextDuringCallBack = "Guardando... Por favor espere!!!";

        lblMensaje.Visible = false;
        if (!Page.IsPostBack)
        {
            cargarRubros();
        }
        lblMensaje.Visible = false;
        lblMensaje.AutoUpdateAfterCallBack = true;
        WccAcciones1.Permisos = Permisos;
        if (Manager.IsCallBack)
        {
            Manager.RegisterClientScriptBlock(typeof(Page), "reloj", "<script>muestraReloj2();</script>");
        }
        ////////////////////////////
        // cargar Usuarios de cache //
        ////////////////////////////
        if (SigSigPlanAccionDataTable != null)
        {
            if (SigSigPlanAccionDataTable.Rows.Count > 0)
            {
                gridRubros.DataSource = SigSigPlanAccionDataTable.DefaultView;
                gridRubros.DataBind();
            }
        }
    }

    #endregion

    #region cargarRubros
    private void cargarRubros()
    {

        BusinessRules.SigPlanAccion objSigPlanAccion = new BusinessRules.SigPlanAccion(ConfigurationManager.AppSettings["Conn"]);
        SigPlanAccionData objSigPlanAccionData = objSigPlanAccion.ConsultarPlanAccionPer_Id(Usuario.PerfilActual.ToString());
        SigSigPlanAccionDataTable = objSigPlanAccionData;
        gridRubros.DataSource = objSigPlanAccionData;
        gridRubros.DataBind();

    }

    #endregion

    #region WccAcciones1_Add_OnClick

    protected void WccAcciones1_Add_OnClick(object sender, ImageClickEventArgs e)
    {
        crearContextItems();
        Server.Transfer("Rubros.aspx?SSM_ID=18", true);
    }

    #endregion

    #region crearContextItems

    private void crearContextItems()
    {
        try
        {
            Context.Items["IdentificadorPlnId"] = IdentificadorPlnId;
        }
        catch (Exception ex)
        {
            lblMensaje.Text = ex.ToString();
        }
    }

    #endregion

    #region WccAcciones1_Delete_OnClick

    protected void WccAcciones1_Delete_OnClick(object sender, ImageClickEventArgs e)
    {
        lblMensaje.Visible = true;
        List<object> keyValues = gridRubros.GetSelectedFieldValues("PLN_ID");
        try
        {
            string[] strIDs = new string[30];
            int intCurrentItems = 0;
            foreach (object key in keyValues)
            {
                intCurrentItems++;
                strIDs[intCurrentItems] = key.ToString();

            }

            BusinessRules.SigPlanAccion objSigPlanAccion = new BusinessRules.SigPlanAccion(ConfigurationManager.AppSettings["Conn"]);

            if (objSigPlanAccion.EliminarRubrosContransacciones(strIDs) != 0)
            {
                lblMensaje.Visible = true;
                Utilidad.mostrarMensaje(Utilidad.TiposMensajes.Mensaje, Utilidad.TraerMensaje("gmsgEliminarRegistrosExitoso"), lblMensaje);
            }
            cargarRubros();
            gridRubros.Selection.UnselectAll();
        }

        catch (Exception ex)
        {
            //throw new ApplicationExceptionManager(Utilidad.TraerMensaje("gmsgErrorInsertar", this.GetType().FullName), ex);
            Utilidad.mostrarMensaje(Utilidad.TiposMensajes.Error, ex.Message, lblMensaje);

        }
    }

    #endregion

    #region WccAcciones1_Update_OnClick

    protected void WccAcciones1_Update_OnClick(object sender, ImageClickEventArgs e)
    {
        List<object> keyValues = gridRubros.GetSelectedFieldValues("PLN_ID");


        foreach (object key in keyValues)
        {

            IdentificadorPlnId = key.ToString();
        }
        crearContextItems();
        Server.Transfer("Rubros.aspx?SSM_ID=18", true);
    }

    #endregion

    #region lnkModificaciones_Click

    protected void lnkModificaciones_Click(object sender, EventArgs e)
    {
        List<object> keyValues = gridRubros.GetSelectedFieldValues("PLN_ID");
        foreach (object key in keyValues)
        {
            IdentificadorPlnId = key.ToString();
        }
        crearContextItems();
        Server.Transfer("RubrosModificacionesListado.aspx?SSM_ID=18", true);
    }

    #endregion

    #region lnkRubro_Click

    protected void lnkRubro_Click(object sender, EventArgs e)
    {
        List<object> keyValues = gridRubros.GetSelectedFieldValues("PLN_ID");


        foreach (object key in keyValues)
        {

            IdentificadorPlnId = key.ToString();
        }
        crearContextItems();
        Server.Transfer("Rubros.aspx?SSM_ID=18", true);
    }

    #endregion

    protected void btnXlsExport_Click(object sender, EventArgs e)
    {
        gridExport.WriteXlsToResponse();
    }
    protected void btnRtfExport_Click(object sender, EventArgs e)
    {
        gridExport.WriteRtfToResponse();
    }
    protected void btnCsvExport_Click(object sender, EventArgs e)
    {
        gridExport.WriteCsvToResponse();
    }
}
